.TH std::basic_string::assign_range 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::basic_string::assign_range \- std::basic_string::assign_range

.SH Synopsis
   template< container-compatible-range<CharT> R >       (since C++23)
   constexpr std::basic_string& assign_range( R&& rg );

   Replaces the contents of the string with the values in the range rg.

   Equivalent to

 return assign(
     std::basic_string(
         std::from_range,
         std::forward<R>(rg),
         get_allocator())
 );

.SH Parameters

   rg - a container compatible range

.SH Return value

   *this

.SH Complexity

   Linear in size of rg.

.SH Exceptions

   If the operation would result in size() > max_size(), throws std::length_error.

   If an exception is thrown for any reason, this function has no effect (strong
   exception safety guarantee).

.SH Notes

       Feature-test macro       Value    Std                   Feature
   __cpp_lib_containers_ranges 202202L (C++23) member functions that accept container
                                               compatible range

.SH Example


// Run this code

 #include <cassert>
 #include <string>

 int main()
 {
     const auto source = {'s', 'o', 'u', 'r', 'c', 'e'};
     std::string destination{"destination"};

 #ifdef __cpp_lib_containers_ranges
     destination.assign_range(source);
 #else
     destination.assign(source.begin(), source.end());
 #endif

     assert(destination == "source");
 }

.SH See also

   assign        assign characters to a string
                 \fI(public member function)\fP
   operator=     assigns values to the string
                 \fI(public member function)\fP
   constructor   constructs a basic_string
                 \fI(public member function)\fP
